/**
 * AI测试定义模块
 * 提供defineAITest函数用于定义和注册测试用例
 */

import { AITestDefinition } from '../types';
import { Midscene } from '../ai/midscene';
import { createContextLogger } from '../utils/logger';

// 创建日志记录器
const logger = createContextLogger('DefineTest');

/**
 * 定义AI测试用例
 * @param testDefinition 测试定义对象
 * @returns 测试ID
 */
export function defineAITest(testDefinition: AITestDefinition): string {
  logger.info(`定义测试用例: ${testDefinition.scenario}`);
  
  // 验证必要字段
  if (!testDefinition.scenario) {
    throw new Error('测试场景名称不能为空');
  }
  
  if (!testDefinition.prompt && (!testDefinition.actions || testDefinition.actions.length === 0)) {
    throw new Error('必须提供提示词或测试动作');
  }
  
  // 注册测试用例
  const midscene = Midscene.getInstance();
  const testId = midscene.registerTest(testDefinition);
  
  logger.info(`测试用例注册成功: ${testId}`);
  return testId;
}